在前一篇知道了一些基本的git
在新增版本的用法,這篇將會延續上一篇的細節,來探討如何在這些版本上進行轉換。
checkout
透過 git log
可以隨時查看歷史過去的紀錄,一些版本都會清楚的寫在裡面(要是當時的你有認真寫的話XD),之前有個老師也提醒了我們,雖然程式是自己寫,但其實寫給三個人看的,分別是過去、現在還有外來,表示過去的你如果紀錄的越詳細,讓之後回來看就會越輕鬆唷!
那如果目前最新的版本,發現了新功能有一些問題,但是假設這個產品不能說停就停!不然會造成使用者很大的不便,該怎麼辦?因為現在這個最新版本的新功能有 bug,那就可以回到過去還沒有開發出新功能的時期,那個時期是穩定版的,也不會中斷使用者使用產品的情形,如下圖
最上面是最新的版本 2b46760
,假如我發現在這個版本出了點問題,那麼可以回到上一個穩定的版本(假如是 e6fef45
),那就打上 git checkout e6fef45
,就會過去囉!
branch
在多人開發同個程式時,可能會有人負責新增 A 功能,有人負責新增 B 功能,那這時候可以使用 branch。branch 就是將原本的 code 複製一份到新的分支上面,在上面進行操作,以上為例就可以開出兩個 branch 名為 functionA 以及 functionB,當 A 整個功能開發完並且測試完成之後,再把它並回去原本的檔案,這個過程叫做 merge
上圖就是在 C6 的版本,新增了一個 branch iss53 出來,在這個 branch 上面的操作就不會影響到原本 master branch 囉!之後開發好了在 merge 回去,生出了一個新的版本叫做 C2。
因為合併回去的時候,有可能改的地方跟原本的分枝會產生衝突(conflict),這時候就要解衝突
conflict
會有衝突,是因為我新的分支改的部分,在原本的分支也被改成另外的功能了,這時後就要請兩邊改功能的工程師出來調解一下,到底該採納誰的意見比較好,這個部分有時候蠻麻煩的,所以在切割功能的時候能夠越清楚,越不容易有衝突產生喔!